package com.encap;

/*
创建程序，在其中定义两个类：Account和AccountTest类体会Java
的封装性，Account类要求具有属性：姓名（长度为2或3或4位），
余额（必须>20),密码（必须是6位），如果不满足，则给出提示信息，
并给默认值
通过setXxx的方法给Account的属性赋值
在AccountTest中测试
 */

public class Account {
    //为了封装，将三个属性设置为private
    private String name;
    private double balance;
    private String pwd;

    //提供两个构造器


    public Account() {
    }

    public Account(String name, double balance, String pwd) {
        this.setName(name);
        this.setBalance(balance);
        this.setPwd(pwd);
    }

    public String getName() {
        return name;
    }
    ///姓名（长度为2或3或4位）
    public void setName(String name) {
        if(name.length() >= 2 && name.length() <= 4){
            this.name = name;
        }else{
            System.out.println("姓名长度须为2或3或4位，默认姓名");
            this.name = "默认名字";
        }

    }

    public double getBalance() {
        return balance;
    }
    //余额（必须>20）
    public void setBalance(double balance) {
        if(balance > 20.0){
            this.balance = balance;
        }else{
            System.out.println("余额（必须>20）");
        }

    }

    public String getPwd() {
        return pwd;
    }
    //密码（必须是6位）
    public void setPwd(String pwd) {
        if(pwd.length() == 6){
            this.pwd = pwd;
        }else{
            System.out.println("密码（必须是6位）,默认密码 000000");
            this.pwd = "000000";
        }

    }
    //显示账号信息
    public void showInfo(){
        System.out.println("账号信息 name=" + name + " balance=" + balance + " password=" + pwd);
    }
}
